﻿using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using csvmb.index.contracts;

namespace csvmb.index
{
    public class Byte_Position_des_Ausschnitts_bestimmen : IByte_Position_des_Ausschnitts_bestimmen
    {
        private IIndex index;

        public void Process(Tuple<long, int> Nummer_und_Höhe)
        {
            Trace.TraceInformation("Index.Byte_Position_des_Ausschnitts_bestimmen mit {0}", Nummer_und_Höhe);

            Result(new Tuple<long, int>(index.Get((Nummer_und_Höhe.Item1 - 1)*Nummer_und_Höhe.Item2), Nummer_und_Höhe.Item2));
        }

        public event Action<Tuple<long, int>> Result;
        
        public void Inject(IIndex independent)
        {
            Trace.TraceInformation("Inject");
            index = independent;
        }
    }
}
